package com.yungu.swift.system.marketing.dao;

import com.yungu.swift.base.mapper.IMapper;
import com.yungu.swift.system.marketing.model.dto.MarketingActivityDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 弹窗活动业务Mapper
 *
 * @author xiuyin.cui - Generate
 * @version 1.1.0-SNAPSHOT
 * @since 2019-04-25 13:50
 */
public interface MarketingActivityMapper extends IMapper<MarketingActivityDto> {
    /**
     * 获取对应类型的启用活动
     *
     * @param map 参数
     * @return List
     */
    List<MarketingActivityDto> getActivities(Map<String, Object> map);

    /**
     * 统计活动数量，判断是否允许新建
     *
     * @param map Map
     * @return int
     */
    int activeCount(Map<String, Object> map);

    /**
     * updateSort
     *
     * @param list List
     * @return int
     */
    int updateSort(List list);

    /**
     * 更新展示数量
     *
     * @param list uuid集合
     * @return List
     */
    int updateShowCount(List<String> list);

    /**
     * 关闭离当前时间最近的一条广告
     *
     * @param businessType Integer
     * @param showType     Integer
     * @return intint
     */
    int shutdownLatelyOne(@Param("businessType") Integer businessType, @Param("showType") Integer showType);

    /**
     * 增加活动点击量
     *
     * @param activityUuid String
     * @return int
     */
    int updateClickCount(@Param("activityUuid") String activityUuid);

    /**
     * 编辑（可以设置null值）
     *
     * @param dto MarketingActivityDto
     * @return int
     */
    int editIncludeNull(MarketingActivityDto dto);

    /**
     * 需要预约开启的活动
     *
     * @param appid
     * @return
     */
    List<MarketingActivityDto> activityQuartz(@Param("appid") String appid);
}